Layouts of connected nodes have a variety of uses, such as to graphically present data or information. Connected node layouts are often used to graphically present information in a hierarchical format. For example, a layout of connected nodes is typically used to present an organizational chart (or “org-chart”), which can graphically describe the hierarchical organization of personnel (e.g., managers, supervisors, employees, etc.) within a business, government, or other organized group. As another example, a layout of connected nodes is typically used to present a person's genealogy or ancestral history, which is a layout commonly referred to as a family tree. Connected layouts are also commonly used to present hierarchical classifications related to science and engineering, such as the genus-species organizations of plants and organisms.
Layouts of connected nodes also have other uses, which have developed with the advent of new technology. For example, connected node layouts are now used to map out the organization of links embedded in an Internet web page, which are typically hierarchically organized and often referred to as web diagrams or site trees. The use of layouts of connected nodes has also become popular to present the organization of files stored on a computer system, for example, in a file management program. As yet another example, connected node layouts have become very useful for aspects of computer science and software engineering, for example, through the use of binary trees.
Although the above described and other types of connected node layouts can be created manually (e.g., as a sketch or drawing), connected node layouts are typically generated by software programs. Similar to many other tasks that were traditionally done manually, such as writing, drawing, or mathematical calculations, the use of software programs to generate connected node layouts offers far more capability, flexibility, and convenience. However, existing approaches to generating connected node layouts with software programs are typically limited to several common layout formats. These formats include a tree layout, which typically has connected nodes arranged in a row by row hierarchy, and a circular layout, which typically has connected nodes arranged in a generally circular pattern emanating from a central node. In these and other formats, the nodes are typically connected by straight and/or curved lines.
A significant drawback to the connected node layouts provided by existing approaches, such as those described above, is that the dimensions of the layouts are typically undesirably disproportionate. For example, the overall width of a tree layout of connected nodes is typically much larger than the overall height of the layout. As a result, connected node layouts provided by existing approaches, particularly when more than a few connected nodes are involved, typically cannot be conveniently viewed or printed, for example, on a typical computer monitor (e.g., without scrolling or impractically zooming out the view) or on a typical sheet of paper (e.g., letter or legal sized). In the case, for example, of a tree layout, the width of the layout of connected nodes will typically be much wider than the width of a typical viewing area of a computer monitor or the typical printing area of a standard sized sheet of paper. As a result, existing approaches are typically unable to provide connected node layouts with more than a few nodes in a convenient format for analysis or presentation.
In consideration of the foregoing limitations of existing approaches, there is a need in the art for new approaches that can provide compact layouts of connected nodes. Such compact layouts need to allow connected nodes to be conveniently viewed and printed on typical mediums, such as a computer monitor or standard sized paper. Furthermore, such compact layouts need to arrange connected nodes so that the overall width and height of the layout are as proportional as possible to facilitate convenient viewing and printing of the connected nodes.